#include <stdio.h>
#include <unistd.h>
#include <string.h>
#include<sys/stat.h>
#include <sys/types.h>
#include<fcntl.h>
//#define FILE_NAME "log.txt"
#define FILE_NAME(number) "log.txt"#number
//每一宏对应的数值，只有一个bit为是1 而且彼此不重叠！
//#define ONE (1<<0) 
//#define TWO (1<<1)
//#define THREE (1<<2)
//#define FOUR (1<<3)

int main()
{
    printf("stdio->fd: %d\n",stdin->_fileno);
    printf("stdout->fd: %d\n",stdout->_fileno);
    printf("stderr->fd: %d\n",stderr->_fileno);
    umask(0);
    int fd0 = open(FILE_NAME(1),O_WRONLY | O_CREAT| O_APPEND,0666);
    int fd1 = open(FILE_NAME(2),O_WRONLY | O_CREAT| O_APPEND,0666);
    int fd2 = open(FILE_NAME(3),O_WRONLY | O_CREAT| O_APPEND,0666);
    int fd3 = open(FILE_NAME(4),O_WRONLY | O_CREAT| O_APPEND,0666);
    int fd4 = open(FILE_NAME(5),O_WRONLY | O_CREAT| O_APPEND,0666);
 
    printf("fd0:%d\n",fd0);
    printf("fd1:%d\n",fd1);
    printf("fd2:%d\n",fd2);
    printf("fd3:%d\n",fd3);
    printf("fd4:%d\n",fd4);

    close(fd0);
    close(fd1);
    close(fd2);
    close(fd3);
    close(fd4);
    
    //if(fd < 0)
    //{
    //    perror("open:");
    //    return 1;
    //}
    //char buffuer[1024];
    //ssize_t num = read(fd,buffuer,sizeof(buffuer)-1);
    //if(num >0)
    //{
    //    buffuer[num] = 0;//因为read是系统调用！不会给我们自己动的加\0 所以我们必须手动添加！
    //    printf("%s",buffuer);
    //}
    //int cnt = 5;
    //char outbuffer[64];
    //while(cnt)
    //{
    //    sprintf(outbuffer,"%s:%d\n","aaaa",cnt--);
    //    write(fd,outbuffer,strlen(outbuffer));
    //    //写入的时候要+1 要将\0给写入进入！
    //}
    //这样我们就可以根据不同的选项让这个函数进行不同的操作了！
    
   // show(ONE);
   // printf("------------------------\n");
   // show(TWO);
   // printf("------------------------\n");
   // show(ONE | TWO);
   // printf("------------------------\n");
   // show(ONE|TWO|THREE);
   // printf("------------------------\n");
   // show(ONE|TWO|THREE|FOUR);



 //   FILE* fp = fopen(FILE_NAME,"r");
   // FILE* fp = fopen(FILE_NAME,"w");
   //if(fp == NULL)
   // {
   //     perror("fopen:");
   // }
   // char buffer[64];
   // while(fgets(buffer,sizeof(buffer)-1,fp) != NULL)//fgets会自动加上\0
   // {
   //     buffer[strlen(buffer)-1] = 0;//防止多读一次\n
   //     puts(buffer);
   //     
   // }
   // int cnt = 5;
   // while(cnt)
   // {
   //     fprintf(fp,"%s,%d\n","hello world",cnt--);
   // }
    //fclose(fp);



















    return 0;
}
//void show(int flags)
//{
//    if(flags & ONE)
//        printf("one\n");
//    if(flags & TWO)
//        printf("two\n");
//    if(flags & THREE)
//        printf("three\n");
//    if(flags & FOUR)
//        printf("four\n");
//}
